/**
 * \file CFindResultFrm.h
 * \author Corentin Le Bail
 * \date 2009-2012
 * \brief Fichier de déclaration de la class CFindResultFrm
 */
//------------------------------------------------------------------------------
#ifndef __CFINDRESULTFRM_H__
#define __CFINDRESULTFRM_H__
//------------------------------------------------------------------------------
#include <QDialog>
#include <QMenu>
#include <QAction>
#include "ui_CFindResultFrm.h"
//------------------------------------------------------------------------------
/**
 * \class CFindResultFrm CFindResultFrm.h "CFindResultFrm.h"
 * \brief Classe de la fenêtre des résultats de recherche.
 */
class CFindResultFrm : public QDialog, private Ui::FindResultFrm
{
	Q_OBJECT
	public:
		/**
		 * \fn CFindResultFrm(QWidget *parent, QSqlQuery *query, QStringList *header, QSize size, QPoint point, int colSort, Qt::SortOrder order, int goToLigne)
		 * \brief Constructeur
		 * \param[in] parent Référence vers un objet parent
		 * \param[in] query Référence vers le résultat d'une requête
		 * \param[in] header Référence vers les entêtes de colonnes
		 * \param[in] size Taille de la fenêtre de résultat
		 * \param[in] point Coordonnées de la fenêtre de résultat
		 * \param[in] colSort Index de la colonne de tri
		 * \param[in] order Sens du tri
		 * \param[in] goToLigne Numéro de la ligne à afficher lors de l'ouverture de la fenêtre de résultat
		 */
		CFindResultFrm(QWidget *parent, QSqlQuery *query, QStringList *header, QSize size, QPoint point, int colSort, Qt::SortOrder order, int goToLigne);
		/**
		 * \fn QString getResult(void)
		 * \return Le résultat de la recherche
		 */
		QString getResult(void) { return _result; }
		/**
		 * \fn int getColSort(void)
		 * \return L'index de la colonne de tri
		 */
		int getColSort(void) { return _colSort; }
		/**
		 * \fn Qt::SortOrder getSortOrder(void)
		 * \return Le sens du tri
		 */
		Qt::SortOrder getSortOrder(void) { return _sortOrder; }
		/**
		 * \fn int getLastLigne(void)
		 * \return La première ligne visible de la grille de la fenêtre de recherche
		 */
		int getLastLigne(void) { return _goToLigne; }
	private:
		QString _result;
		QString fontTemplate;
		QString findText;
		int _colSort;
		Qt::SortOrder _sortOrder;
		QMenu *popupMenu;
		QAction *actActionExport;
		int _goToLigne;
		
		void keyPressEvent(QKeyEvent * event);
		void makeMenu(void);
	private slots:
		void on_table_ascendingChange(Qt::SortOrder ascending); 
		void on_table_columnChange(int col);
		void on_table_valid(int row, int col);
		void on_table_cellDoubleClicked(int row, int col);
		void on_table_customContextMenuRequested(const QPoint & pos);
		void onActionExport_triggered(void);
};
//------------------------------------------------------------------------------
#endif //__CFINDRESULTFRM_H__
//------------------------------------------------------------------------------